package com.sinog.front.feign.biz;

import com.sinog.core.utilbean.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;

/**
 * @desc 全部人员管理
 * @author sunsf
 * @date 2020-02-07-14:06
 */
@FeignClient("sinog2c-biz")
public interface BjdxInfoService {

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 列表
     * 安置帮教管理 - 帮教工作信息管理 - 救助管理 - 列表
     * 安置帮教管理 - 帮教工作信息管理 - 帮教管理 - 列表
     * @param xdFlag xdFlag
     * @param pageIndex 当前页
     * @param pageSize 条数
     * @param querykey 姓名（搜索关键字）
     * @param xdkey 吸毒
     * @param departid 用户部门编码
     * @param level 单位级别
     * @param orgid 用户单位编码
     * @param pinggu pinggu
     * @param sortField 排序字段
     * @param sortOrder 排序方式
     * @return String
     */
    @RequestMapping("/azbj/bjdxInfo/qbrygl/list")
    String getQbryglList(
            @RequestParam(value = "xdFlag", required = false) Integer xdFlag,
            @RequestParam(value = "pageIndex", required = false) Integer pageIndex,
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
            @RequestParam(value = "querykey", required = false) String querykey,
            @RequestParam(value = "xdkey", required = false) String xdkey,
            @RequestParam(value = "departid", required = false) String departid,
            @RequestParam(value = "level", required = false) String level,
            @RequestParam(value = "orgid", required = false) String orgid,
            @RequestParam(value = "pinggu", required = false) String pinggu,
            @RequestParam(value = "sortField", required = false) String sortField,
            @RequestParam(value = "sortOrder", required = false) String sortOrder);

    /**
     * 获取基本信息
     * @param priNum priNum
     * @return Result
     */
    @RequestMapping("/azbj/bjdxInfo/qbrygl/query/getInfo")
    Result getBaseInfoByPriNum(@RequestParam(value = "priNum", required = false) String priNum);

    /**
     * 获取基本信息
     * @param priNum priNum
     * @return Map<String,Object>
     */
    @RequestMapping("/azbj/bjdxInfo/qbrygl/query/getInfoMap")
    Map<String,Object> getBaseInfoByPriNumMap(@RequestParam(value = "priNum", required = false) String priNum);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 反显工作人员列表
     * @param priNum priNum
     * @param departid departid
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getWorkerList")
    List<Map<String,Object>> getWorkerList(
            @RequestParam(value = "priNum", required = false) String priNum,
            @RequestParam(value = "departid", required = false) String departid);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 反显志愿者列表
     * @param priNum priNum
     * @param departid departid
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getZyzList")
    List<Map<String,Object>> getZyzList(
            @RequestParam(value = "priNum", required = false) String priNum,
            @RequestParam(value = "departid", required = false) String departid);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 反显稳控民警列表
     * @param priNum priNum
     * @param departid departid
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getWkmjList")
    List<Map<String,Object>> getWkmjList(
            @RequestParam(value = "priNum", required = false) String priNum,
            @RequestParam(value = "departid", required = false) String departid);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 反显家庭成员
     * @param str str
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getFamilyList")
    List<Map<String,Object>> getFamilyList(@RequestParam(value = "str", required = false) String str);

    /**
     * 获取帮教小组成员信息
     * @param priNum priNum
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getBjxzcyList")
    List<Map<String,Object>> getBjxzcyList(@RequestParam(value = "priNum", required = false) String priNum);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 待选人员确定
     * @param gzryids gzryids
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getWorkerListByParam")
    List<Map<String,Object>> getWorkerListByParam(@RequestParam(value = "gzryids", required = false) String gzryids);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 待选人员确定
     * @param zyzids zyzids
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getZyzListByParam")
    List<Map<String,Object>> getZyzListByParam(@RequestParam(value = "zyzids", required = false) String zyzids);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 待选人员确定
     * @param jtcyids jtcyids
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getFamilyListByParam")
    List<Map<String,Object>> getFamilyListByParam(@RequestParam(value = "jtcyids", required = false) String jtcyids);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 待选人员确定
     * @param wkmjids wkmjids
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/getWkmjListByParam")
    List<Map<String,Object>> getWkmjListByParam(@RequestParam(value = "wkmjids", required = false) String wkmjids);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 全部人员管理 - 设置帮教小组 - 保存
     * @param priNum priNum
     * @param xbjfa xbjfa
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/updateByPriNum")
    void updateByPriNum(
            @RequestParam(value = "priNum", required = false) String priNum,
            @RequestParam(value = "xbjfa", required = false) String xbjfa);

    /**
     * 添加帮教小组成员
     * @param priNum priNum
     * @param data data
     * @param userid userid
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/saveXiaozu")
    void saveXiaozu(
            @RequestParam(value = "priNum", required = false) String priNum,
            @RequestParam(value = "data", required = false) String data,
            @RequestParam(value = "userid", required = false) String userid);

    /**
     * 删除工作小组成员
     * @param delIds delIds
     */
    @RequestMapping("/azbj/bjdxInfo/setBjxz/delXiaozu")
    void delXiaozuById(@RequestParam(value = "delIds", required = false) List<String> delIds);

    /**
     * 安置帮教管理 - 档案管理 - 列表
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param sortField 排序字段
     * @param sortOrder 排序方式
     * @param querykey querykey
     * @param departid departid
     * @param level level
     * @param orgid orgid
     * @param type type
     * @param sfsl sfsl
     * @param inputSource 录入来源 01:司法所补录的解矫人员,05:司法所补录的监狱人员,3.看守所录入的服刑人员,4:接口进入的看守所人员,5:监狱录入的服刑人员,6:接口进入的监狱服刑人员,7:社矫录入的服刑人员,8:接口进入的社矫人员,9:监狱通过excel导入,10:社矫通过excel导入,11:看守所通过excel导入,30:湖南看守所个性化对接
     * @return String
     */
    @RequestMapping("/azbj/bjdxInfo/archivesManager/list")
    String getArchivesManagerList(
            @RequestParam(value = "pageIndex", required = false) Integer pageIndex,
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
            @RequestParam(required = false) String sortField,
            @RequestParam(required = false) String sortOrder,
            @RequestParam(value = "querykey", required = false) String querykey,
            @RequestParam(value = "departid", required = false) String departid,
            @RequestParam(value = "level", required = false) int level,
            @RequestParam(value = "orgid", required = false) String orgid,
            @RequestParam(value = "type", required = false) String type,
            @RequestParam(value = "sfsl", required = false) String sfsl,
            @RequestParam(value = "inputSource", required = false) String inputSource);

    /**
     * 获取户籍迁出街道信息
     * @param parentCode parentCode
     * @param priNum priNum
     * @return List<Map < String,Object>>
     */
    @RequestMapping("/azbj/bjdxInfo/getQcStreet")
    List<Map<String,Object>> getQcStreet(
            @RequestParam(required = false, defaultValue = "-1") String parentCode,
            @RequestParam(required = false, defaultValue = "-1") String priNum);
}